home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 142 / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin / tools / s_tool / vpmatv.c < prev   
Text File  |  1995-12-18  |  3KB  |  123 lines

  1.  
  2. #define    TITLE "X68k VPMATV [Matier仮想画面VideoPrinter] with DCVP2.x\n\t\t\t\tVersion 1.00 TNB製作所\n"
  3.  
  4. #include    <TNB.H>
  5. #include    <basic.H>
  6. #include    <stdio.H>
  7.  
  8. UNchar    MAT[256];    //MATIER のあるパス
  9.  
  10. void    main(ar,av)
  11. int    ar;
  12. char    *av[];
  13. {
  14. int    i,j,m,n;
  15. UNchar    *s;
  16. FILE    *f;
  17. UNchar    buf[512];
  18. UNchar    cml[512];
  19. UNchar    dmi[512];
  20. UNchar    *vadds=0;
  21. int    xwidth,ywidth;
  22. printf("\x1b[m");
  23. printf( TITLE );
  24. for(i=1;i<ar;i++){
  25.     if ( av[i][0]=='-' || av[i][0]=='/' ){
  26.         switch(av[i][1]|0x20){
  27.         case('m'):
  28.         case('9'):
  29.         case('w'):
  30.         case('s'):
  31.         case('p'):
  32.         case('b'):
  33.         case('x'):
  34.         case('y'):
  35.             break;
  36.         case('h'):
  37.         case('?'):
  38.             Help();
  39.             break;
  40.         default:
  41.             Err(" スイッチに誤りがあります。");
  42.         }
  43.     } else {
  44.         Err(" スイッチに誤りがあります。");
  45.     }
  46. }
  47. /*--------MAT.$$$確認-------*/
  48. i=GETENV("MATIER",NULL,MAT);        //環境変数MATIERの中身を得る
  49. if ( i<0 )
  50.     Err(" 環境変数`MATIER'が設定されていません。");
  51. for(s=MAT;*s!=0;s++);
  52. if ( *s-1!='\\' ){        //最後に\がついているか?
  53.     *s++='\\';
  54.     *s=0;
  55. }
  56. strcat(MAT,"MAT.$$$");    //MAT.$$$のフルパス、のはず
  57. f=fopen(MAT,"rt");
  58. if ( f==NULL )
  59.     Err(" MAT.$$$が見つかりません。\n 環境変数`MATIER'の内容に誤りがある可能性があります。");
  60. while( fgets(buf,128,f)!=NULL ){
  61.     if ( buf[0]=='V' && buf[1]==' ' ){
  62.         sscanf(buf,"%s %p %d %d",dmi,&vadds,&xwidth,&ywidth);
  63.         break;
  64.     }
  65. }
  66. fclose( f );
  67. if ( (int)vadds==0 )
  68.     Err(" 仮想画面が設定されていないようです。");
  69. strcpy(buf,"DCVP2.x ");
  70. for(i=1;i<ar;i++){
  71.     strcat(buf,av[i]);
  72.     strcat(buf," ");
  73. }
  74. sprintf(cml,"%s-E$%X,%d,%d",buf,vadds,xwidth,ywidth);
  75.  
  76.     //printf("%s\n\n",cml);
  77.  
  78. if ( CHILD(cml) )
  79.     Err(0);
  80. EXIT2(0);
  81. }
  82. /*++++++++++++++++++++++++++++++++++++++*/
  83. void    Err(st)
  84. UNchar    *st;
  85. {
  86. if ( st!=0 )
  87.     printf(st);
  88. printf("\n [何かキーを押して下さい]\n");
  89. KFLUSHIO(0xFF);
  90. INKEY();
  91. KFLUSHIO(0xFF);
  92. EXIT2(-1);
  93. }
  94. /*++++++++++++++++++++++++++++++++++++++*/
  95. void    Help()
  96. {
  97. printf(
  98.     "\n"
  99.     "    マチエールの仮想画面をビデオプリンタで印画します。\n"
  100.     "\n"
  101.     "使用法:VPMATV.x [switch]\n"
  102.     "    /M ・・・・ マウスで諸設定を行います(Visual DCVP)。\n"
  103.     "    /9 ・・・・ 用紙を縦置きに使用します。\n"
  104.     "    /W ・・・・ ワイドシートを使用します。\n"
  105.     "    /S ・・・・ 正ドット比モードにします。\n"
  106.     "    /P[sx],[sy],[ex],[ey] ・・・・\n"
  107.     "        プリントする画像の範囲を指定します。\n"
  108. //    "    /B[n]・・ 単純[n]/256倍してプリントします。\n"
  109.     "    /X[n]・・ 横のマージを設定します(def.0)。\n"
  110.     "                (0=中央,1=左寄せ,2=右寄せ)\n"
  111.     "    /Y[n]・・ 縦のマージを設定します(def.0)。\n"
  112.     "                (0=中央,1=上寄せ,2=下寄せ)\n"
  113.     "\n"
  114.     "    DCVP2.x を呼び出しますので、パスの通っているところに\n"
  115.     "    DCVP2.x をおいて下さい。\n"
  116.     "    MAT.$$$ を読みますので、環境変数`MATIER'にMATIERのパス\n"
  117.     "    を設定して下さい。\n"
  118. );
  119. EXIT2(0);
  120. }
  121.  
  122.  
  123.